gets()
, puts()
, getchar()
এবং putchar()
এর ব্যবহারসি প্রোগ্রামিং ভাষায় gets()
, puts()
, getchar()
এবং putchar()
ফাংশনগুলো ইনপুট এবং আউটপুটের জন্য ব্যবহার করা হয়। প্রতিটি ফাংশনের একটি নির্দিষ্ট কাজ রয়েছে এবং প্রোগ্রামিংয়ে ইউজারের সাথে ইন্টারঅ্যাকশন আরও সহজ করে তোলে। নিচে এই ফাংশনগুলো সম্পর্কে বিস্তারিত আলোচনা করা হলো।
gets()
– স্ট্রিং ইনপুট (Deprecated)gets()
ফাংশনটি কনসোল থেকে সম্পূর্ণ একটি লাইন স্ট্রিং ইনপুট নিতে ব্যবহৃত হয়। এটি ব্যবহার করে ইউজার একটি সম্পূর্ণ লাইন টাইপ করতে পারে, যা পরবর্তী newline ক্যারেক্টার পর্যন্ত ইনপুট হিসাবে গৃহীত হয়। তবে, gets()
ফাংশনটি নিরাপত্তাজনিত ঝুঁকির কারণে বর্তমানে পরিত্যক্ত (deprecated), কারণ এটি বাফার ওভারফ্লো ঘটাতে পারে। এর পরিবর্তে fgets()
ফাংশন ব্যবহার করার পরামর্শ দেওয়া হয়।
gets(string);
#include <stdio.h>
int main() {
char name[100];
printf("Enter your name: ");
gets(name); // এটি নিরাপদ নয় এবং পরামর্শ দেওয়া হয় না
printf("Hello, %s\n", name);
return 0;
}
বিঃদ্রঃ
gets()
ফাংশনটি নিরাপদ নয়, তাই এর পরিবর্তেfgets()
ব্যবহার করা উচিৎ।
puts()
– স্ট্রিং আউটপুটputs()
ফাংশনটি একটি স্ট্রিং কনসোলে প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি printf()
এর বিকল্প হিসেবে স্ট্রিং আউটপুট দিতে পারে। puts()
ফাংশনটি স্ট্রিং প্রদর্শনের পরে একটি newline ক্যারেক্টার (নতুন লাইন) যোগ করে, যার ফলে আউটপুটের পরে নতুন লাইনে চলে যায়।
puts(string);
#include <stdio.h>
int main() {
char name[] = "Alice";
puts("Hello,");
puts(name); // আউটপুটের শেষে newline ক্যারেক্টার যুক্ত করবে
return 0;
}
এখানে puts()
ফাংশনটি স্ট্রিং আউটপুট প্রদর্শন করেছে এবং প্রতিটি আউটপুটের শেষে একটি নতুন লাইন যোগ করেছে।
getchar()
– একক ক্যারেক্টার ইনপুটgetchar()
ফাংশনটি কনসোল থেকে একটি একক ক্যারেক্টার ইনপুট নিতে ব্যবহৃত হয়। এটি একটি অক্ষর ইনপুট গ্রহণ করে এবং সেই অক্ষরটি প্রোগ্রামে রিটার্ন করে। getchar()
সাধারণত একক অক্ষর ইনপুটের জন্য উপযুক্ত।
char getchar(void);
#include <stdio.h>
int main() {
char ch;
printf("Enter a character: ");
ch = getchar(); // একক অক্ষর ইনপুট
printf("You entered: %c\n", ch);
return 0;
}
এখানে getchar()
ফাংশনটি একটি অক্ষর ইনপুট গ্রহণ করেছে এবং printf()
এর মাধ্যমে সেই অক্ষরটি প্রদর্শন করেছে।
putchar()
– একক ক্যারেক্টার আউটপুটputchar()
ফাংশনটি কনসোলে একটি একক ক্যারেক্টার আউটপুট প্রদর্শনের জন্য ব্যবহৃত হয়। এটি একটি ক্যারেক্টার আর্গুমেন্ট হিসেবে গ্রহণ করে এবং সেই ক্যারেক্টারটি কনসোলে প্রদর্শন করে।
putchar(character);
#include <stdio.h>
int main() {
char ch = 'A';
printf("The character is: ");
putchar(ch); // একক অক্ষর আউটপুট করবে
printf("\n");
return 0;
}
এখানে putchar()
ফাংশনটি ch
ভেরিয়েবলে থাকা A
অক্ষরটি কনসোলে আউটপুট করেছে।
gets()
বনাম fgets()
যেহেতু gets()
ফাংশনটি বাফার ওভারফ্লো ঘটাতে পারে, তাই fgets()
ফাংশনটি একটি নিরাপদ বিকল্প হিসেবে ব্যবহার করা হয়। fgets()
ইনপুটের আকার নির্দিষ্ট করতে দেয়, যার ফলে অতিরিক্ত ডেটা স্টোর হওয়ার ঝুঁকি থাকে না।
fgets()
উদাহরণ:#include <stdio.h>
int main() {
char name[100];
printf("Enter your name: ");
fgets(name, sizeof(name), stdin); // নিরাপদ স্ট্রিং ইনপুট
printf("Hello, %s", name);
return 0;
}
ফাংশন | কাজ | ব্যবহারের ধরন |
---|---|---|
gets() | স্ট্রিং ইনপুট (পরিত্যক্ত) | gets(string); |
puts() | স্ট্রিং আউটপুট | puts(string); |
getchar() | একক ক্যারেক্টার ইনপুট | char ch = getchar(); |
putchar() | একক ক্যারেক্টার আউটপুট | putchar(ch); |
fgets() | নিরাপদ স্ট্রিং ইনপুট | fgets(string, size, stdin); |
gets()
এবং puts()
স্ট্রিং ইনপুট এবং আউটপুটের জন্য ব্যবহৃত হয়, তবে gets()
ফাংশনটি নিরাপদ নয়, তাই fgets()
ফাংশন ব্যবহার করা বাঞ্ছনীয়। অন্যদিকে, getchar()
এবং putchar()
একক ক্যারেক্টার ইনপুট এবং আউটপুটের জন্য ব্যবহৃত হয়।
common.read_more